/**
 * 本地存储工具
 * 封装localStorage操作，提供统一的存储接口
 */

const TOKEN_KEY = 'token';
const USER_ID_KEY = 'userId';
const USER_ACCOUNT_KEY = 'userAccount';

/**
 * 设置存储项
 * @param key - 存储键
 * @param value - 存储值
 */
export function setItem(key: string, value: string): void {
  try {
    localStorage.setItem(key, value);
  } catch (error) {
    console.error('存储数据失败:', error);
  }
}

/**
 * 获取存储项
 * @param key - 存储键
 * @returns 存储值，不存在返回null
 */
export function getItem(key: string): string | null {
  try {
    return localStorage.getItem(key);
  } catch (error) {
    console.error('获取数据失败:', error);
    return null;
  }
}

/**
 * 删除存储项
 * @param key - 存储键
 */
export function removeItem(key: string): void {
  try {
    localStorage.removeItem(key);
  } catch (error) {
    console.error('删除数据失败:', error);
  }
}

/**
 * 清空所有存储
 */
export function clear(): void {
  try {
    localStorage.clear();
  } catch (error) {
    console.error('清空存储失败:', error);
  }
}

/**
 * 存储token
 * @param token - token值
 */
export function setToken(token: string): void {
  setItem(TOKEN_KEY, token);
}

/**
 * 获取token
 * @returns token值
 */
export function getToken(): string | null {
  return getItem(TOKEN_KEY);
}

/**
 * 删除token
 */
export function removeToken(): void {
  removeItem(TOKEN_KEY);
}

/**
 * 存储用户ID
 * @param userId - 用户ID
 */
export function setUserId(userId: string | number): void {
  setItem(USER_ID_KEY, String(userId));
}

/**
 * 获取用户ID
 * @returns 用户ID
 */
export function getUserId(): string | null {
  return getItem(USER_ID_KEY);
}

/**
 * 存储用户账号
 * @param account - 用户账号
 */
export function setUserAccount(account: string): void {
  setItem(USER_ACCOUNT_KEY, account);
}

/**
 * 获取用户账号
 * @returns 用户账号
 */
export function getUserAccount(): string | null {
  return getItem(USER_ACCOUNT_KEY);
}

/**
 * 清除用户信息（包括token、userId、userAccount）
 */
export function clearUserInfo(): void {
  removeToken();
  removeItem(USER_ID_KEY);
  removeItem(USER_ACCOUNT_KEY);
}

